package com.leetcode.Offer;

public class JZ11 {
    public int minArray(int[] numbers) {

        int left = 0, right = numbers.length - 1;
        while(right > left){
            int mid = (right + left) / 2;
            if(numbers[mid] < numbers[right]){//只能与右边判断
                right = mid;//为什么不等于mid - 1 比如{4,5,3,3,3}  就找不到3了
            }else if(numbers[mid] > numbers[right]){
                left = mid + 1;//为什么mid + 1 因为确定mid的数大于右边了 mid肯定不是最小元素了 所以可以从右边开始找
            }else{
                right--;//为什么要右边-- 比如{1,3,3} 如果左边+1 那就找不到1 了
            }
        }
        return numbers[left];
    }

    public static void main(String[] args) {
        System.out.println(new JZ11().minArray(new int[]{5, 4, 3, 1}));
    }
}
